package us.codecraft.webmagic.scheduler;

import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.Task;

/**
 * 包含url管理和调度的接口。包括url抓取队列，url去重等功能。<br>
 * Scheduler的接口包含一个Task参数，该参数是为单Scheduler多Task预留的(Spider就是一个Task)。<br>
 * @author code4crafter@gmail.com <br>
 * Date: 13-4-21
 * Time: 下午1:12
 */
public interface Scheduler {

    /**
     * 加入一个待抓取的链接
     * @param request 待抓取的链接
     * @param task 定义的任务，以满足单Scheduler多Task的情况
     */
    public void push(Request request,Task task);

    /**
     * 返回下一个要抓取的链接
     * @param task 定义的任务，以满足单Scheduler多Task的情况
     * @return 下一个要抓取的链接
     */
    public Request poll(Task task);

}
